/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年9月22日
 * 项目： rainhy-auth
 */
package com.rainhy.auth.authloader.annotation;

import com.rainhy.auth.AuthConstant;
import com.rainhy.auth.context.AuthItem;
import com.rainhy.auth.context.AuthItemGroup;

/**
 * 注解权限项
 * 
 * @author rain
 * @version [版本号, 2016年9月22日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class AnnAuthItem implements AuthItem {
    
    /** 权限项key(全局唯一不可重复) */
    private String key;
    
    /** 权限组 */
    private AuthItemGroup group;
    
    /** 权限名 */
    private String name;
    
    /** 权限描述 */
    private String description;
    
    public AnnAuthItem(String key, String name, String description) {
        super();
        this.key = key;
        this.name = name;
        this.description = description;
    }
    
    @Override
    public String getAuthType() {
        return AuthConstant.AUTHTYPE_OPERATE;
    }
    
    /** 权限描述 */
    @Override
    public String getDescription() {
        return this.description;
    }
    
    /** 权限组 */
    @Override
    public AuthItemGroup getGroup() {
        return this.group;
    }
    
    /** 权限项key(全局唯一不可重复) */
    @Override
    public String getKey() {
        return this.key;
    }
    
    /** 权限名 */
    @Override
    public String getName() {
        return this.name;
    }
    
    /** 权限引用 Id, 和权限引用类型结合使用,确定具体的数据行 id */
    @Override
    public String getRefId() {
        return null;
    }
    
    /** 权限引用类型(可以用作数据权限时,关联的"地区","虚中心"或者"分公司"等等) */
    @Override
    public String getRefType() {
        return null;
    }
    
    @Override
    public boolean isValid() {
        return true;
    }
    
    /** 权限描述 */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /** 权限组 */
    public void setGroup(AuthItemGroup group) {
        this.group = group;
    }
    
    /** 权限项key(全局唯一不可重复) */
    public void setKey(String key) {
        this.key = key;
    }
    
    /** 权限名 */
    public void setName(String name) {
        this.name = name;
    }
}
